环境搭建和版本管理(nvm)
1. Node.js 简介和特性
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境,它使得 JavaScript 可以在服务器端运行。Node.js 具有以下特性:
- 非阻塞 I/O:Node.js 使用事件驱动和非阻塞 I/O 模型,使其非常适合处理高并发的应用。
- 单线程:尽管是单线程,但通过事件循环和异步操作,Node.js 能够高效地处理大量并发请求。
- 跨平台:Node.js 可以在 Windows、macOS 和 Linux 等多个操作系统上运行。
2. 环境搭建和版本管理(nvm)
2.1 安装 Node.js
在开始使用 Node.js 之前,首先需要在你的计算机上安装 Node.js。你可以通过以下步骤进行安装:
2.1.1 使用官方安装包
访问 Node.js 官方网站,下载适合你操作系统的安装包,并按照提示进行安装。
2.1.2 使用包管理器
对于 Linux 和 macOS 用户,可以使用包管理器来安装 Node.js。例如,在 Ubuntu 上可以使用以下命令:
sudo apt-get update
sudo apt-get install nodejs
在 macOS 上可以使用 Homebrew:
brew install node
2.2 安装 nvm(Node Version Manager)
nvm 是一个用于管理多个 Node.js 版本的工具。它允许你在同一台机器上安装和切换不同的 Node.js 版本。
2.2.1 安装 nvm
在终端中运行以下命令来安装 nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
安装完成后,关闭并重新打开终端,或者运行以下命令来加载 nvm:
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
2.2.2 使用 nvm 安装 Node.js
你可以使用 nvm 安装多个 Node.js 版本,并根据需要进行切换。例如,安装最新的 LTS 版本:
nvm install --lts
安装特定版本:
nvm install 14.17.0
切换到已安装的版本:
nvm use 14.17.0
查看已安装的版本:
nvm ls
2.3 验证安装
安装完成后,可以通过以下命令验证 Node.js 和 npm(Node Package Manager)是否安装成功:
node -v
npm -v
3. 创建第一个 Node.js 应用
3.1 初始化项目
创建一个新的目录,并在其中初始化一个新的 Node.js 项目:
mkdir my-first-node-app
cd my-first-node-app
npm init -y
3.2 编写简单的 HTTP 服务器
创建一个名为 index.js 的文件,并编写以下代码:
const http = require('http');
const hostname = '127.0.0.1';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello, World!\n');
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
3.3 运行应用
在终端中运行以下命令来启动服务器:
node index.js
打开浏览器,访问 http://127.0.0.1:3000/,你应该会看到 "Hello, World!" 的输出。
4. 实践练习
4.1 练习:创建一个简单的 API
创建一个新的 Node.js 项目,并编写一个简单的 API,返回一个 JSON 对象。
4.2 练习:使用 nvm 管理多个 Node.js 版本
在你的开发环境中安装多个 Node.js 版本,并使用 nvm 在不同版本之间进行切换。
5. 总结
通过本教程,你已经学会了如何安装 Node.js 和 nvm,并创建了你的第一个 Node.js 应用。接下来,你可以继续学习 Node.js 的模块系统、包管理器、事件循环等高级主题。
希望这篇教程对你有所帮助!如果你有任何问题或需要进一步的帮助,请随时提问。